summaryrefslogtreecommitdiff
path: root/src/pages/searchkey/[slug].jsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/searchkey/[slug].jsx')
-rw-r--r--src/pages/searchkey/[slug].jsx89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/pages/searchkey/[slug].jsx b/src/pages/searchkey/[slug].jsx
new file mode 100644
index 00000000..f09520f4
--- /dev/null
+++ b/src/pages/searchkey/[slug].jsx
@@ -0,0 +1,89 @@
+import axios from 'axios';
+import { useRouter } from 'next/router';
+import { useEffect, useState } from 'react';
+import Seo from '@/core/components/Seo';
+import dynamic from 'next/dynamic';
+import { capitalizeEachWord } from '../../utils/capializeFIrstWord';
+
+const BasicLayout = dynamic(() =>
+ import('@/core/components/layouts/BasicLayout')
+);
+const ProductSearch = dynamic(() =>
+ import('@/lib/product/components/ProductSearch')
+);
+
+// const BASE_URL = process.env.NEXT_PUBLIC_SELF_HOST;
+const BASE_URL = 'https://indoteknik.com';
+
+export default function KeywordPage() {
+ const router = useRouter();
+ const [result, setResult] = useState(null);
+ const [query, setQuery] = useState(null);
+
+ // Ambil slug dari URL dinamis
+ const keywordSlug = router?.query?.slug || '';
+ const keyword = keywordSlug.replace(/-/g, ' ').toLowerCase();
+ const url = BASE_URL + router.asPath.split('?')[0];
+ const slugTitle = capitalizeEachWord(keyword);
+
+ // Fetch info dari Solr index "url_category_brand"
+ const getUrls = async (url) => {
+ try {
+ const response = await axios(
+ `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/url-category_brand?url=${url}`
+ );
+ const data = response?.data?.response?.docs[0] || null;
+ setResult(data);
+ console.log('[🔍 result from API]', data); // Tambahin ini
+ } catch (error) {
+ console.error('Error fetching data:', error);
+ }
+ };
+
+ // Panggil fetch setelah router siap
+ useEffect(() => {
+ if (router.isReady) {
+ getUrls(url);
+ }
+ }, [router.isReady]);
+
+ // Jika Solr index ditemukan, siapkan parameter pencarian
+ useEffect(() => {
+ if (result) {
+ const fq = `category_parent_ids:${result.category_id_i} AND manufacture_id_i:${result.brand_id_i}`;
+ const q = keyword || '*:*'; // keyword dari URL
+ console.log('SOLR QUERY:', { q, fq });
+ setQuery({ fq, q });
+ }
+ }, [result, keyword]);
+
+ if (!result) {
+ return (
+ <BasicLayout>
+ <Seo title='Keyword tidak ditemukan' />
+ <div className='container py-5'>
+ <h2>Produk tidak ditemukan berdasarkan keyword</h2>
+ </div>
+ </BasicLayout>
+ );
+ }
+
+ return (
+ <BasicLayout>
+ <Seo
+ title={`Beli ${slugTitle} Original & Harga Terjangkau - indoteknik.com`}
+ description={`Beli ${slugTitle} Kirim Jakarta Surabaya Semarang Makassar Manado Denpasar Balikpapan Medan Palembang Lampung Bali Bandung Makassar Manado.`}
+ additionalMetaTags={[
+ {
+ property: 'keywords',
+ content: `Beli ${slugTitle}, harga ${slugTitle}, ${slugTitle} murah, toko ${slugTitle}, ${slugTitle} jakarta, ${slugTitle} surabaya`,
+ },
+ ]}
+ canonical={`${process.env.NEXT_PUBLIC_SELF_HOST}${
+ router.asPath.split('?')[0]
+ }`}
+ />
+ {query && <ProductSearch query={query} prefixUrl={`${router.asPath}`} />}
+ </BasicLayout>
+ );
+}